#include "Task.hpp"
#include "threadPool.hpp"
#include <iostream>
#include <ctime>
#include <cstdlib>

// int fun(int x, int y)
// {
//     return x+y;
// }

int main()
{
    srand((uint64_t)time(nullptr) ^ getpid());
    // std::cout << "hello thread pool" << std::endl;
    ThreadPool<Task> tp;
    tp.run();

    while (true)
    {
        int x = rand() % 100 + 1;
        usleep(rand() % 8000);
        int y = rand() % 30 + 1;
        Task t(x, y, [](int x, int y) -> int
               { return x + y; });

        // Task t(x,y,fun);
        // std::cout << "制作任务完成：" << x << "+" << y << "=?" << std::endl;
        logMessage(DEBUG, "制作任务完成: %d+%d=?", x, y);
        tp.pushTask(t);

        sleep(1);
    }
    return 0;
}